<?php

namespace app\controller;

use app\BaseController;


class Company extends Base
{

    public function initialize()
    {
        parent::initialize();
        Token::apisecurity();
    }

    /**
     * 公司列表
     * api post /company/index
     * @param int id 公司ID
     * @return json
     */
    public function index()
    {
        if (_isget()) {
            if (isset(_get()['id']) && _get()['id']) {
                $where = [];
                $where[] = ['delete_time', '=', 0];
                $where[] = ['id', '=',  _get()['id']];
                $result = db('company', 'mysql')->where($where)->find();
                if(!$result) {
                    _Error('公司不存在');
                }

                $result['create_time'] = totime($result['create_time']);
                $result['update_time'] = totime($result['update_time']);
                _Success('公司详情', 200, $result);
            } else {
                $where = [];
                $where[] = ['delete_time', '=', 0];
                $list = db('company', 'mysql')->where($where)->cache('getCompanySelect')->select()->each(function ($item) {
                    $item['create_time'] = totime($item['create_time']);
                    $item['update_time'] = totime($item['update_time']);
                    return $item;
                });
                _Success('公司列表',200,$list);
            }
        }
        _Result('响应失败', 500);
    }

    /**
     * 添加公司
     * api post /company/company_add
     * @param string company_name 公司名称
     * @param string company_desc 公司描述
     * @return json
     */
    public function company_add()
    {
        if (_ispost()) {
            if (!isset(_post()['company_name']) || !_post()['company_name']) {
                _Error('公司名称未填写');
            }
            $data = _post();
            $data['create_time'] = time();
            $data['update_time'] = time();
            $result = db('company', 'mysql')->cache('getCompanySelect')->insert($data);
            if (!$result) {
                _Error('添加失败');
            }
            return _Success('添加成功');
        }
        _Result('响应失败', 500);
    }

    /**
     * 更新公司
     * api post /company/company_edit
     * @param int id 公司ID
     * @param string company_name 公司名称
     * @param string company_desc 公司描述
     * @return json
     */
    public function company_edit()
    {
        if (_ispost()) {
            if (!isset(_get()['id']) || !_get()['id']) {
                _Error('公司主键未提交');
            }
            $data = _post();
            $data['update_time'] = time();
            $result = db('company', 'mysql')->cache('getCompanySelect')->where('id', $data['id'])->update($data);
            if (!$result) {
                _Error('更新失败');
            }
            return _Success('更新成功');
        }
        _Result('响应失败', 500);
    }

    /**
     * 删除公司
     * @param int id 公司ID
     */
    public function company_del()
    {
        if (_ispost()) {
            if (!isset(_post()['id']) || !_post()['id']){
                _Error('公司主键未提交');
            }
            if(db('users','mysql')->where('company_id',_post()['id'])->find()){
                _Error('公司下有员工信息');
            }
            $result = db('company','mysql')->where('id',_post()['id'])->cache('getCompanySelect')->delete();
            if (!$result) {
                _Error('删除失败');
            }
            return _Success('删除成功');
        }
        _Result('响应失败', 500);
    }
}
